home *** CD-ROM | disk | FTP | other *** search
- ¢4 L
- FM.COM
-
- Doug Schaffer Barry Simon
-
-
-
- FM (for File Modify) is a little utility which allows you to
- easily edit files at the individual byte level. It is especially
- useful in situations where one might use DEBUG to modify a byte in
- order to patch a program, to change the wording of messages in
- your programs which bother you (its search capabilities are useful
- for this) or to change color attributes in a program.
-
- The program is invoked by typing fm FILESPEC
-
- If FILESPEC is of the form NAME.EXT, the program with that name in
- the current drive and directory will be loaded. But fm supports
- other drives and full path names so if your default drive is A:
- and FM.COM is on the current drive or in the DOS search path, the
- command "fm B:\some directory\some filename" will work perfectly.
-
-
- KEYSTOKE COMMANDS
-
- A description of the most important keystrokes is displayed on the
- fm screen and the others are described in the help screen. The
- commands involve the function keys, cursor keypad, <TAB> and
- <ESCAPE>.
-
- The function keys have the following meanings
- F1:Help F2:Search F3:NOT USED F4:NOT USED
- F5:Hex/Decimal toggle F6:ASCII display toggle F7:NOT USED
- F8:NOT USED F9:Sector Save F10:Sector Jump
-
- <ESCAPE> exits the program.
- <TAB> toggles the active cursor between the HEX and ASCII areas.
- The Cursor Arrow keys do the obvious things.
- <PGDN> reads the next sector.
- <CTRL-PGDN> the sector 5 sectors down.
- <PGUP> & <CTRL-PGUP> undo the actions of <PGDN> & <CTRL-PGDN>.
- <Home> moves the cursor to the start of the active line.
- <End> moves the cursor to the end of the active line.
-
-
- THE FM DISPLAY
-
- Fm displays the file in "sectors" of 256 bytes each in 16 lines
- with 16 bytes per line. The line below the main display shows the
- file name, its date and time of creation or last update and the
- word HEX or ASCII indicating which part of the main display is
- active. The <TAB> key toggles which is the active display and in
- addition to status line the active display is indicated by the
- block cursor. Modifications are made on the active display as
- will be explained.
-
- The first column of numbers in the active display labels the lines
- by indicating the number of the first byte on the line. In the
- default mode the numbers are in hexidecimal and appear in <..>.
-
- The <F5> key toggles to a decimal numbering of the lines. The
- next 16 columns of data show the HEX value of each byte, the 256
- possibilities for a byte corresponding to two HEX digits. The
- next "column" gives the current sector number within the file and
- the number of sectors. In default mode, these numbers are given
- in HEX but <F5> toggles not only the line numbers but also whether
- these numbers are given in HEX or decimal. This same column also
- reports the current value of the <F5> HEX/decimal toggle.
-
- The right hand columns show the individual lines in ASCII form.
- In the default mode, only "text characters" are shown with all
- non-text characters (ASCII numbers 0-31;129-256) are indicated by
- periods. <F6> toggles to and from a mode where these characters
- are shown. In the non-text mode, you can do a screen dump with
- <Shift PrtSc>
-
- A help screen is displayed if one hits <F1>. You can exit the
- help screen by hitting <F1> or <ESCAPE>.
-
-
-
-
-
- FM page 2
-
-
- MANEUVERING
-
- The <PGDN> and <PGUP> keys read the next and previous sectors.
- Depressing the <CTRL> key while hitting these keys makes a change
- of 5 sectors. If the <F10> key is depressed, you are prompted for
- a new sector number. Responding <ENTER> will move you to the
- first sector (thus since unsuccessful searches will leave you in
- the last sector, you'll probably want to follow an unsuccessful
- search by the <F10>,<ENTER> combination). Otherwise, a number
- should be entered and the program will jump to the appropriate
- sector. If line numbers, etc are displayed in HEX (resp decimal),
- the sector number should be entered in HEX (resp. decimal).
-
-
- MODIFYING
-
- The whole point of FM is to change the file. In the default mode,
- the block cursor is in the ASCII part of the screen. The cursor
- can be moved with the arrow, home and end keys. If a text
- character is struck, the character at the cursor is replaced by
- the character struck. The <TAB> key toggles to the HEX display.
- Modification of the two HEX digit byte under the cursor is made by
- striking the appropriate keys. Even if only one of the two digits
- needs to be changed, you must enter both of them. If you have
- entered the first digit, it will change on the display and flash
- until the second digit is entered. If any key other than 0-9,a-e
- is struck the byte returns to its initial value.
-
- Any changes made are indicated on both the HEX and ASCII display
- but they are only made in memory and NOT on the original file. To
- make the changes in the original file, you must hit the <F9> key.
- <F9> only saves the changes made in the currently active sector
- and not any changes made previously in other sectors. If you try
- to exit the program or change the sector shown and you have made
- any unsaved changes, you are prompted to hit <F9> to save the
- changes if you wish.
-
-
- SEARCHING
-
- You can do a rudimentary search through the entire file FOLLOWING
- the cursor (not just the current sector). Hitting the <F2> key
- prompts for a search string. ASCII search strings will be
- searched regardless of whether the current active mode is ASCII or
- HEX. To do a HEX search, proceed the byte with a "_". Do not
- place quotes around _ or around search text. You can search for
- multiple HEX bytes (so _41_61 will search for Aa) and ASCII and
- HEX can be mixed in the search string (so A_42C_44 will search for
- ABCD).
-
-
- MODIFYING FM
-
- One of the uses of fm is to modify itself if you wish to change
- some of the defaults in the program. The twelve defaults which
- can be changed occur in sectors 1 (the first eight below) and 3 in
- the form <relevant byte>-<FUNCTION>. Thus, to change the color
- attribute for the ASCII text display, find the string ASCII. The
- byte immediately preceding it is 2D(hex) for - and the byte before
- that (which is 07 for grey on black) can be modified to change the
- display color. For example, changing it to 1E will make that
- display as yellow on blue (on a color monitor). The color code is
- the standard one set by IBM (but different from the BASIC and
- ANSI.SYS color codes), namely:
-
- 0 black 4 red
- 1 blue 5 magenta
- 2 green 6 brown (yellow)
- 3 cyan 7 grey (white)
-
- Adding 8(Hex) to these for the foreground color produces their
- "intense" version; intense brown is yellow and intense grey is
- white. Adding 8 (Hex) to the background color causes the
- foreground to flash. The first HEX digit determines the
- background and the second the foreground. As indicated 1E (E=6+8
- Hex) is yellow on blue while 9E would be flashing yellow on blue.
-
-
-
- FM page 3
-
- Here are the other attributes which can be modified:
-
- LINE# Color attributes for line number;
- default is 04=red on black
- HEX Color attributes for the HEX display;
- default is 06=brown on black
- HEXED Color attribute for the one changed HEX digit when editing
- in HEX mode and only one digit has been changed;
- default is F0=flashing black on white
- ACTIVE CURSOR Color attributes of the active cursor;
- default is 70=black on white.
- PASSIVE CURSOR Color attributes of the position of the cursor on
- the inactive screen (shadow cursor);
- default is 01=blue on black
- HELP SCREEN Color attributes of Help Screen;
- default is 74=red on white
- HELP BORDER Color attributes of Help Border;
- default is 1C=intense red on blue
- BOOT MODE The default is 00 which cause the ASCII screen to be the
- active one when the program is loaded. Change it to 01 to
- make the HEX screen active upon program loading.
- BOOT DSTYLE The default is 00 which cause the line numbers, etc.
- to appear in HEX upon loading. Change to 01 to make
- decimal used upon loading.
- GRAPHICS The default is 00 which causes only text characters to be
- displayed in the ASCII display when the program is loaded.
- Change to 01 to make all characters display upon loading.
- HEXID The ASCII character used in a search string to preface a
- HEX specification. The default is _ which has an ASCII
- code of 5F. To change _ to $ for example change 5F to 24.
-
- The three items preceding HEXID concern the initial settings of
- the choices controlled by the <TAB>, <F5> and <F6> toggles. Some
- of the default attribute settings are chosen so the display is
- useful on a monochrome monitor and you may wish to change them if
- you run fm from a color monitor.
-
-
- DISCLAIMER
-
- The FM program is written and copyright by Doug Schaffer. These
- documentation is written by Barry Simon. While the program has
- been used extensively and appears to be bug free, it is a powerful
- program and the responsibility for its use and any damages it
- might cause lies with the user. Any comments can be sent to:
-
- Doug Schaffer Barry Simon
- Caltech 1-78 Caltech 253-37
- Pasadena, CA 91125 Pasadena, CA 91125
-
- While the program was written at Caltech, that institution bears
- no responsibility for the program.
-
- FM.COM may be freely distributed and used, but selling FM or
- bundling FM with software that is sold is not allowed. Only
- unmodified copies of the original software may be distributed.
- ¢0 L